package co.com.inventarios.vista;

import co.com.inventarios.logica.IProbodegaLogica;
import co.com.inventarios.logica.ITrasladoLogica;
import co.com.inventarios.logica.IUnimedLogica;
import co.com.inventarios.logica.ProbodegaLogica;
import co.com.inventarios.logica.RequisicionLogica;
import co.com.inventarios.logica.TrasladoLogica;
import co.com.inventarios.logica.UnimedLogica;
import co.com.inventarios.modelo.Bodega;
import co.com.inventarios.modelo.Cataventa;
import co.com.inventarios.modelo.Dlluser;
import co.com.inventarios.modelo.Label;
import co.com.inventarios.modelo.Mngcco;
import co.com.inventarios.modelo.Mngdoc;
import co.com.inventarios.modelo.MngdocId;
import co.com.inventarios.modelo.MngdocWork;
import co.com.inventarios.modelo.Mngmcn;
import co.com.inventarios.modelo.MngmcnId;
import co.com.inventarios.modelo.MngmcnWork;
import co.com.inventarios.modelo.Mngtdc;
import co.com.inventarios.modelo.MngtdcId;
import co.com.inventarios.modelo.Probodega;
import co.com.inventarios.modelo.Producto;
import co.com.inventarios.modelo.Prounimed;
import co.com.inventarios.modelo.RequiDoc;
import co.com.inventarios.modelo.RequiDocId;
import co.com.inventarios.modelo.RequiPro;
import co.com.inventarios.modelo.RequiProId;
import co.com.inventarios.modelo.RequiProWork;
import co.com.inventarios.modelo.Unimed;
import co.com.inventarios.modelo.Vinculado;
import co.com.inventarios.utils.MessageBundleLoader;
import co.com.inventarios.utils.SessionUtil;
import co.com.inventarios.utils.SessionVars;

import com.icesoft.faces.component.ext.HtmlCommandButton;
import com.icesoft.faces.component.ext.HtmlInputText;
import com.icesoft.faces.component.ext.HtmlInputTextarea;
import com.icesoft.faces.component.ext.HtmlPanelGrid;
import com.icesoft.faces.component.ext.HtmlSelectOneMenu;
import com.icesoft.faces.component.ext.RowSelectorEvent;
import com.icesoft.faces.context.effects.JavascriptContext;

import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Date;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import javax.servlet.http.HttpServletRequest;

public class Inventario_MB {

	// // Var y componenetes ini Busqueda ///////////////////////////////////

	private HtmlCommandButton cmdelimina;
	private HtmlCommandButton cmdedita;
	private HtmlCommandButton cmdnuevo;
	private String nombreEliminar;
	private MngdocWork[] mngdocw;
	private Mngdoc DocEdicion = new Mngdoc();
	private Mngdoc mngdocEdicion = new Mngdoc();
	private HtmlInputText txtBuscar;
	private String buscar;
	private Double aexistencia;
	private HtmlSelectOneMenu bustxttipo;
	private String busbtipo;
	private HtmlInputText txtfechabusca;
	private HtmlSelectOneMenu seleconeestadobus;
	private HtmlSelectOneMenu seleconebusqueda;
	private HtmlSelectOneMenu txtbodegasbus;
	private String selecestadobus;
	private Date fechabusca;
	private SelectItem[] sel_document;
	private SelectItem[] sel_bodega;
	private String busquedacmbbus;
	private boolean modalRendered;
	private boolean selecfecha;
	private List<Mngtdc> listadocument;
	private String docautorizados;
	private String bodautorizadas;
	private ITrasladoLogica Traslado_logica;
	private IProbodegaLogica Probodega_logica;
	private Mngdoc Documento;
	private String bempresa;
	private String bclase;
	private String btipo;
	private String bnumero;
	private String busuario;
	private String busunombre;
	private Double breg;
	private Dlluser miDlluser;
	private String bccosto;
	private String bbodegae;
	private String bbodegaenom;
	private String bbodegas;
	private String bbodegasnom;
	private boolean docselec;
	private List<Mngdoc> listTrasDoc;
	private List<Probodega> listProbodega;

	private String Usucod = ((HttpServletRequest) FacesContext
			.getCurrentInstance().getExternalContext().getRequest())
			.getParameter("Usucodigo");

	// // Var y componenetes fin Busqueda /////////////////////////////////

	// // Var y componenetes Ini Propiedades /////////////////////////////////

	private HtmlSelectOneMenu txttipo;
	private boolean sweditando = false;
	private boolean swnuevo = false;
	private boolean swselec_bodpad = false;
	private Double aprecio;
	private Double consecutiv;
	private String aprounidad;
	private String BusBodModo;
	private HtmlInputText txtnumero;
	private Date bfecha;
	private HtmlInputText txtfecha;
	private HtmlInputText txtbodegae;
	private HtmlInputText txtbodegasal;
	private HtmlInputText txtbodegasalnom;
	private HtmlInputText txtbodegaentnom;
	private HtmlSelectOneMenu txtbodegas;
	private String selecestado;
	private HtmlSelectOneMenu seleconeestado;
	private String bdetalle;
	private HtmlInputTextarea txtdetalle;
	private HtmlPanelGrid panelagregar;
	private boolean agregarpro;
	private String aproducto;
	private HtmlInputText txtaproducto;
	private String apronombre;
	private HtmlInputText txtapronombre;
	private String selectedunimed;
	private Mngdoc Mngdoc_c;
	private Vinculado miVinculado;
	private Mngcco miccosto;
	private Bodega miBodegae;
	private Bodega miBodegas;
	private Mngmcn miMngmcns;
	private Mngmcn miMngmcne;
	private MngmcnId miMngmcnIds;
	private MngmcnId miMngmcnIde;
	private Cataventa miCataventa;

	private Label milabel;
	private MngdocId miId;
	private Unimed miUnimed;
	private Producto miProducto;
	private String acatalogo;
	private SelectItem[] sel_unimed;
	private Double aprocantidad;
	private HtmlInputText txtaprocantidad;
	private boolean swcerrado;
	private boolean busqueda1 = true;
	private boolean busqueda2 = false;
	private boolean busqueda3 = false;
	private boolean busqueda4 = false;
	private boolean busqueda5 = false;
	private MngmcnWork[] mngmcnw;
	private Mngmcn DetalleEdicion = new Mngmcn();
	private HtmlInputText txtusuario;
	private HtmlInputText txtnombre;
	private String busquedacmb;
	private String buscarpro;
	private HtmlInputText txtBuscarpro;
	private List<Producto> listProductos;
	private HtmlCommandButton popup_cmdselecionar;
	private boolean modalRenderedpro;
	private String nombreEliminarpro;
	private boolean modalRenderedenviar;
	private IUnimedLogica logicaUnimed;
	private List<Prounimed> listaUnimed;
	private List<Mngmcn> listDetalle;

	private boolean proselec;
	private String retornar;

	// popup buscar bodegas
	private boolean modalpopupbodega;
	private String busquedacmbbodega;
	private String buscarbod;
	private HtmlInputText txtBuscarbod;
	private List<Bodega> listaBodega;
	private List<Bodega> listaBodegapopup;
	private HtmlCommandButton popup_cmdselecionarBod;

	// // Var y componenetes Fin Propiedades /////////////////////////////////

	// // Get and Set Ini Busqueda ///////////////////////////////////////

	public Inventario_MB() {
		bclase = "TB00";
		bempresa = "001";

		// sel_busqueda = null;
		try {

			action_Validausuario();
			action_validadoc(null);

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public ITrasladoLogica getTraslado_logica() {
		return Traslado_logica;
	}

	public void setTraslado_logica(ITrasladoLogica traslado_logica) {
		Traslado_logica = traslado_logica;
	}

	public Double getConsecutiv() {
		return consecutiv;
	}

	public void setConsecutiv(Double consecutiv) {
		this.consecutiv = consecutiv;
	}

	public Double getAexistencia() {
		return aexistencia;
	}

	public List<Probodega> getListProbodega() {
		return listProbodega;
	}

	public void setListProbodega(List<Probodega> listProbodega) {
		this.listProbodega = listProbodega;
	}

	public void setAexistencia(Double aexistencia) {
		this.aexistencia = aexistencia;
	}

	public HtmlCommandButton getCmdelimina() {
		return cmdelimina;
	}

	public IProbodegaLogica getProbodega_logica() {
		return Probodega_logica;
	}

	public void setProbodega_logica(IProbodegaLogica probodega_logica) {
		Probodega_logica = probodega_logica;
	}

	public boolean isSwselec_bodpad() {
		return swselec_bodpad;
	}

	public String getBusBodModo() {
		return BusBodModo;
	}

	public void setBusBodModo(String busBodModo) {
		BusBodModo = busBodModo;
	}

	public void setSwselec_bodpad(boolean swselec_bodpad) {
		this.swselec_bodpad = swselec_bodpad;
	}

	public HtmlCommandButton getCmdedita() {
		return cmdedita;
	}

	public Dlluser getMiDlluser() {
		return miDlluser;
	}

	public boolean isDocselec() {
		return docselec;
	}

	public void setDocselec(boolean docselec) {
		this.docselec = docselec;
	}

	public HtmlInputText getTxtbodegaentnom() {
		return txtbodegaentnom;
	}

	public void setTxtbodegaentnom(HtmlInputText txtbodegaentnom) {
		this.txtbodegaentnom = txtbodegaentnom;
	}

	public void setMiDlluser(Dlluser miDlluser) {
		this.miDlluser = miDlluser;
	}

	public String getBempresa() {
		return bempresa;
	}

	public void setBempresa(String bempresa) {
		this.bempresa = bempresa;
	}

	public String getBclase() {
		return bclase;
	}

	public void setBclase(String bclase) {
		this.bclase = bclase;
	}

	public String getBtipo() {
		return btipo;
	}

	public Mngdoc getDocumento() {
		return Documento;
	}

	public void setDocumento(Mngdoc documento) {
		Documento = documento;
	}

	public String getBusuario() {
		return busuario;
	}

	public void setBusuario(String busuario) {
		this.busuario = busuario;
	}

	public String getBusunombre() {
		return busunombre;
	}

	public void setBusunombre(String busunombre) {
		this.busunombre = busunombre;
	}

	public void setBtipo(String btipo) {
		this.btipo = btipo;
	}

	public String getBnumero() {
		return bnumero;
	}

	public void setBnumero(String bnumero) {
		this.bnumero = bnumero;
	}

	public Double getBreg() {
		return breg;
	}

	public void setBreg(Double breg) {
		this.breg = breg;
	}

	public boolean isSelecfecha() {
		return selecfecha;
	}

	public void setSelecfecha(boolean selecfecha) {
		this.selecfecha = selecfecha;
	}

	public void setCmdedita(HtmlCommandButton cmdedita) {
		this.cmdedita = cmdedita;
	}

	public HtmlCommandButton getCmdnuevo() {
		return cmdnuevo;
	}

	public void setCmdnuevo(HtmlCommandButton cmdnuevo) {
		this.cmdnuevo = cmdnuevo;
	}

	public void setCmdelimina(HtmlCommandButton cmdelimina) {
		this.cmdelimina = cmdelimina;
	}

	public String getNombreEliminar() {
		return nombreEliminar;
	}

	public void setNombreEliminar(String nombreEliminar) {
		this.nombreEliminar = nombreEliminar;
	}

	public void setMngdocw(MngdocWork[] mngdocw) {
		this.mngdocw = mngdocw;
	}

	public MngdocWork[] getMngdocw() {
		Traslado_logica = new TrasladoLogica();
		if (mngdocw == null) {
			try {
				if (listTrasDoc != null) {
					mngdocw = Traslado_logica
							.findmngDocSelectedRow(listTrasDoc);
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return mngdocw;
	}

	public Mngdoc getMngdocEdicion() {
		return mngdocEdicion;
	}

	public void setMngdocEdicion(Mngdoc mngdocEdicion) {
		this.mngdocEdicion = mngdocEdicion;
	}

	public HtmlInputText getTxtBuscar() {
		return txtBuscar;
	}

	public void setTxtBuscar(HtmlInputText txtBuscar) {
		this.txtBuscar = txtBuscar;
	}

	public String getBuscar() {
		return buscar;
	}

	public void setBuscar(String buscar) {
		this.buscar = buscar;
	}

	public String getBbodegasnom() {
		return bbodegasnom;
	}

	public void setBbodegasnom(String bbodegasnom) {
		this.bbodegasnom = bbodegasnom;
	}

	public HtmlSelectOneMenu getBustxttipo() {
		return bustxttipo;
	}

	public String getBodautorizadas() {
		return bodautorizadas;
	}

	public void setBodautorizadas(String bodautorizadas) {
		this.bodautorizadas = bodautorizadas;
	}

	public String getBccosto() {
		return bccosto;
	}

	public void setBccosto(String bccosto) {
		this.bccosto = bccosto;
	}

	public String getBbodegae() {
		return bbodegae;
	}

	public void setBbodegae(String bbodegae) {
		this.bbodegae = bbodegae;
	}

	public String getBbodegas() {
		return bbodegas;
	}

	public void setBbodegas(String bbodegas) {
		this.bbodegas = bbodegas;
	}

	public void setBustxttipo(HtmlSelectOneMenu bustxttipo) {
		this.bustxttipo = bustxttipo;
	}

	public String getBusbtipo() {
		return busbtipo;
	}

	public void setBusbtipo(String busbtipo) {
		this.busbtipo = busbtipo;
	}

	public HtmlInputText getTxtfechabusca() {
		return txtfechabusca;
	}

	public void setTxtfechabusca(HtmlInputText txtfechabusca) {
		this.txtfechabusca = txtfechabusca;
	}

	public HtmlSelectOneMenu getSeleconeestadobus() {
		return seleconeestadobus;
	}

	public void setSeleconeestadobus(HtmlSelectOneMenu seleconeestadobus) {
		this.seleconeestadobus = seleconeestadobus;
	}

	public HtmlSelectOneMenu getSeleconebusqueda() {
		return seleconebusqueda;
	}

	public void setSeleconebusqueda(HtmlSelectOneMenu seleconebusqueda) {
		this.seleconebusqueda = seleconebusqueda;
	}

	public String getSelecestadobus() {
		return selecestadobus;
	}

	public void setSelecestadobus(String selecestadobus) {
		this.selecestadobus = selecestadobus;
	}

	public Date getFechabusca() {
		return fechabusca;
	}

	public String getDocautorizados() {
		return docautorizados;
	}

	public void setDocautorizados(String docautorizados) {
		this.docautorizados = docautorizados;
	}

	public void setFechabusca(Date fechabusca) {
		this.fechabusca = fechabusca;
	}

	public List<Mngtdc> getListadocument(String Buscar, String clase) {
		Traslado_logica = new TrasladoLogica();
		if (listadocument == null) {
			try {
				listadocument = Traslado_logica.buscarDocument_Aut(Buscar,
						clase);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return listadocument;
	}

	public void setListadocument(List<Mngtdc> listadocument) {
		this.listadocument = listadocument;
	}

	public SelectItem[] getSel_document() {

		if (sel_document == null) {
			listadocument = null;
			if (docautorizados == null) {
				docautorizados = "X,X";
			}
			listadocument = getListadocument((String) SessionUtil
					.get(SessionVars.DOCAUTORIZADOS), bclase);
			sel_document = new SelectItem[listadocument.size()];
			int i = 0;
			for (Mngtdc obj : listadocument) {
				sel_document[i] = new SelectItem(obj.getId().getTdctipo(), obj
						.getTdcnombre(), obj.getId().getTdctipo());
				i++;
			}
		}
		return sel_document;
	}

	public void setSel_document(SelectItem[] sel_document) {
		this.sel_document = sel_document;
	}

	public SelectItem[] getSel_bodega() {

		if (sel_bodega == null) {
			listaBodega = null;
			if (bodautorizadas == null) {
				bodautorizadas = "X,X";
			}
			listaBodega = getListaBodega((String) SessionUtil
					.get(SessionVars.BODAUTORIZADAS));
			sel_bodega = new SelectItem[listaBodega.size()];
			int i = 0;
			for (Bodega obj : listaBodega) {
				sel_bodega[i] = new SelectItem(obj.getBodcodigo(), obj
						.getBodnombre());
				i++;
			}
		}
		return sel_bodega;
	}

	public void setSel_bodega(SelectItem[] sel_bodega) {
		this.sel_bodega = sel_bodega;
	}

	public List<Bodega> getListaBodega(String Buscar) {
		Traslado_logica = new TrasladoLogica();
		if (listaBodega == null) {
			try {
				listaBodega = Traslado_logica.buscarBodegas_Aut(Buscar);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return listaBodega;
	}

	public void setlistTrasDoc(List<Mngdoc> listTrasDoc) {
		this.listTrasDoc = listTrasDoc;
	}

	public List<Mngdoc> getlistTrasDoc() {
		Traslado_logica = new TrasladoLogica();
		if (listTrasDoc == null) {
			try {
				// listReqDoc = ReqDoc_logica.buscarTodosRequiDoc();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return listTrasDoc;
	}

	public void setListaBodega(List<Bodega> listaBodega) {
		this.listaBodega = listaBodega;
	}

	public String getBusquedacmbbus() {
		return busquedacmbbus;
	}

	public void setBusquedacmbbus(String busquedacmbbus) {
		this.busquedacmbbus = busquedacmbbus;
	}

	public boolean isModalRendered() {
		return modalRendered;
	}

	public void setModalRendered(boolean modalRendered) {
		this.modalRendered = modalRendered;
	}

	public String getUsucod() {
		return Usucod;
	}

	public void setUsucod(String usucod) {
		Usucod = usucod;
	}

	// // Get and Set Fin Busqueda ///////////////////////////////////////////

	// // Get and Set Ini Propiedades
	// ///////////////////////////////////////////
	public HtmlSelectOneMenu getTxttipo() {
		return txttipo;
	}

	public Cataventa getMiCataventa() {
		return miCataventa;
	}

	public void setMiCataventa(Cataventa miCataventa) {
		this.miCataventa = miCataventa;
	}

	public Mngmcn getMiMngmcns() {
		return miMngmcns;
	}

	public String getBbodegaenom() {
		return bbodegaenom;
	}

	public void setBbodegaenom(String bbodegaenom) {
		this.bbodegaenom = bbodegaenom;
	}

	public void setMiMngmcns(Mngmcn miMngmcns) {
		this.miMngmcns = miMngmcns;
	}

	public Mngmcn getMiMngmcne() {
		return miMngmcne;
	}

	public void setMiMngmcne(Mngmcn miMngmcne) {
		this.miMngmcne = miMngmcne;
	}

	public Mngdoc getMngdoc_c() {
		return Mngdoc_c;
	}

	public void setMngdoc_c(Mngdoc mngdoc_c) {
		Mngdoc_c = mngdoc_c;
	}

	public HtmlInputText getTxtnumero() {
		return txtnumero;
	}

	public String getRetornar() {
		return retornar;
	}

	public void setRetornar(String retornar) {
		this.retornar = retornar;
	}

	public void setTxtnumero(HtmlInputText txtnumero) {
		this.txtnumero = txtnumero;
	}

	public HtmlSelectOneMenu getTxtbodegasbus() {
		return txtbodegasbus;
	}

	public void setTxtbodegasbus(HtmlSelectOneMenu txtbodegasbus) {
		this.txtbodegasbus = txtbodegasbus;
	}

	public Date getBfecha() {
		return bfecha;
	}

	public void setBfecha(Date bfecha) {
		this.bfecha = bfecha;
	}

	public HtmlInputText getTxtfecha() {
		return txtfecha;
	}

	public void setTxtfecha(HtmlInputText txtfecha) {
		this.txtfecha = txtfecha;
	}

	public HtmlInputText getTxtbodegae() {
		return txtbodegae;
	}

	public Mngcco getMiccosto() {
		return miccosto;
	}

	public void setMiccosto(Mngcco miccosto) {
		this.miccosto = miccosto;
	}

	public Bodega getMiBodegae() {
		return miBodegae;
	}

	public void setMiBodegae(Bodega miBodegae) {
		this.miBodegae = miBodegae;
	}

	public Bodega getMiBodegas() {
		return miBodegas;
	}

	public void setMiBodegas(Bodega miBodegas) {
		this.miBodegas = miBodegas;
	}

	public void setTxtbodegae(HtmlInputText txtbodegae) {
		this.txtbodegae = txtbodegae;
	}

	public HtmlSelectOneMenu getTxtbodegas() {
		return txtbodegas;
	}

	public void setTxtbodegas(HtmlSelectOneMenu txtbodegas) {
		this.txtbodegas = txtbodegas;
	}

	public List<Bodega> getListaBodegapopup() throws Exception {
		return listaBodegapopup;
	}

	public void setListaBodegapopup(List<Bodega> listaBodegapopup) {
		this.listaBodegapopup = listaBodegapopup;
	}

	public List<Producto> getListProductos() throws Exception {
		// ReqDoc_logica = new RequisicionLogica();
		// return ReqDoc_logica.buscarTodosProductos();
		return listProductos;
	}

	public void setListProductos(List<Producto> listProductos) {
		this.listProductos = listProductos;
	}

	public String getBdetalle() {
		return bdetalle;
	}

	public void setBdetalle(String bdetalle) {
		this.bdetalle = bdetalle;
	}

	public HtmlInputTextarea getTxtdetalle() {
		return txtdetalle;
	}

	public Label getMilabel() {
		return milabel;
	}

	public void setMilabel(Label milabel) {
		this.milabel = milabel;
	}

	public MngdocId getMiId() {
		return miId;
	}

	public void setMiId(MngdocId miId) {
		this.miId = miId;
	}

	public void setTxtdetalle(HtmlInputTextarea txtdetalle) {
		this.txtdetalle = txtdetalle;
	}

	public String getAproducto() {
		return aproducto;
	}

	public boolean isModalRenderedpro() {
		return modalRenderedpro;
	}

	public void setModalRenderedpro(boolean modalRenderedpro) {
		this.modalRenderedpro = modalRenderedpro;
	}

	public void setAproducto(String aproducto) {
		this.aproducto = aproducto;
	}

	public HtmlInputText getTxtaproducto() {
		return txtaproducto;
	}

	public String getSelecestado() {
		return selecestado;
	}

	public void setSelecestado(String selecestado) {
		this.selecestado = selecestado;
	}

	public HtmlSelectOneMenu getSeleconeestado() {
		return seleconeestado;
	}

	public void setSeleconeestado(HtmlSelectOneMenu seleconeestado) {
		this.seleconeestado = seleconeestado;
	}

	public HtmlPanelGrid getPanelagregar() {
		return panelagregar;
	}

	public void setPanelagregar(HtmlPanelGrid panelagregar) {
		this.panelagregar = panelagregar;
	}

	public boolean isAgregarpro() {
		return agregarpro;
	}

	public void setAgregarpro(boolean agregarpro) {
		this.agregarpro = agregarpro;
	}

	public HtmlInputText getTxtbodegasalnom() {
		return txtbodegasalnom;
	}

	public void setTxtbodegasalnom(HtmlInputText txtbodegasalnom) {
		this.txtbodegasalnom = txtbodegasalnom;
	}

	public String getSelectedunimed() {
		return selectedunimed;
	}

	public void setSelectedunimed(String selectedunimed) {
		this.selectedunimed = selectedunimed;
	}

	public Double getAprocantidad() {
		return aprocantidad;
	}

	public void setAprocantidad(Double aprocantidad) {
		this.aprocantidad = aprocantidad;
	}

	public boolean isSwcerrado() {
		return swcerrado;
	}

	public void setSwcerrado(boolean swcerrado) {
		this.swcerrado = swcerrado;
	}

	public Mngmcn getDetalleEdicion() {
		return DetalleEdicion;
	}

	public boolean isSweditando() {
		return sweditando;
	}

	public void setSweditando(boolean sweditando) {
		this.sweditando = sweditando;
	}

	public void setSel_unimed(SelectItem[] sel_unimed) {
		this.sel_unimed = sel_unimed;
	}

	public SelectItem[] getSel_unimed() {

		if (sel_unimed == null && this.aproducto != null) {
			listaUnimed = null;
			listaUnimed = getListaUnimed(this.aproducto);
			sel_unimed = new SelectItem[listaUnimed.size()];
			int i = 0;
			for (Prounimed obj : listaUnimed) {
				sel_unimed[i] = new SelectItem(obj.getUnimed().getUmdcodigo(),
						obj.getUnimed().getUmdnombre());
				i++;
			}
		}
		return sel_unimed;
	}

	public void setMngmcnw(MngmcnWork[] mngmcnw) {
		this.mngmcnw = mngmcnw;
	}

	public MngmcnWork[] getMngmcnw() {
		Traslado_logica = new TrasladoLogica();
		if (mngmcnw == null) {
			try {
				if (listDetalle != null) {
					mngmcnw = Traslado_logica
							.findMngmcnSelectedRow(listDetalle);
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return mngmcnw;
	}

	public boolean isSwnuevo() {
		return swnuevo;
	}

	public void setSwnuevo(boolean swnuevo) {
		this.swnuevo = swnuevo;
	}

	public void setlistDetalle(List<Mngmcn> listDetalle) {
		this.listDetalle = listDetalle;
	}

	public List<Mngmcn> getlistDetalle() {
		Traslado_logica = new TrasladoLogica();
		listadocument = null;

		try {
			if (swnuevo != true) {
				listDetalle = Traslado_logica.buscarDetalle(bempresa, bclase,
						btipo, bnumero);
			}

		} catch (Exception e) {
			e.printStackTrace();
		}

		return listDetalle;
	}

	public String getBusquedacmb() {
		return busquedacmb;
	}

	public void setBusquedacmb(String busquedacmb) {
		this.busquedacmb = busquedacmb;
	}

	public String getBuscarpro() {
		return buscarpro;
	}

	public boolean isModalpopupbodega() {
		return modalpopupbodega;
	}

	public void setModalpopupbodega(boolean modalpopupbodega) {
		this.modalpopupbodega = modalpopupbodega;
	}

	public String getBusquedacmbbodega() {
		return busquedacmbbodega;
	}

	public void setBusquedacmbbodega(String busquedacmbbodega) {
		this.busquedacmbbodega = busquedacmbbodega;
	}

	public String getBuscarbod() {
		return buscarbod;
	}

	public void setBuscarbod(String buscarbod) {
		this.buscarbod = buscarbod;
	}

	public HtmlInputText getTxtBuscarbod() {
		return txtBuscarbod;
	}

	public void setTxtBuscarbod(HtmlInputText txtBuscarbod) {
		this.txtBuscarbod = txtBuscarbod;
	}

	public HtmlInputText getTxtbodegasal() {
		return txtbodegasal;
	}

	public void setTxtbodegasal(HtmlInputText txtbodegasal) {
		this.txtbodegasal = txtbodegasal;
	}

	public void setBuscarpro(String buscarpro) {
		this.buscarpro = buscarpro;
	}

	public HtmlCommandButton getPopup_cmdselecionar() {
		return popup_cmdselecionar;
	}

	public void setPopup_cmdselecionar(HtmlCommandButton popup_cmdselecionar) {
		this.popup_cmdselecionar = popup_cmdselecionar;
	}

	public void setDetalleEdicion(Mngmcn DetalleEdicion) {
		this.DetalleEdicion = DetalleEdicion;
	}

	public void setTxtaproducto(HtmlInputText txtaproducto) {
		this.txtaproducto = txtaproducto;
	}

	public String getApronombre() {
		return apronombre;
	}

	public void setApronombre(String apronombre) {
		this.apronombre = apronombre;
	}

	public HtmlInputText getTxtapronombre() {
		return txtapronombre;
	}

	public void setTxtapronombre(HtmlInputText txtapronombre) {
		this.txtapronombre = txtapronombre;
	}

	public HtmlInputText getTxtaprocantidad() {
		return txtaprocantidad;
	}

	public void setTxtaprocantidad(HtmlInputText txtaprocantidad) {
		this.txtaprocantidad = txtaprocantidad;
	}

	public HtmlInputText getTxtusuario() {
		return txtusuario;
	}

	public void setTxtusuario(HtmlInputText txtusuario) {
		this.txtusuario = txtusuario;
	}

	public HtmlInputText getTxtnombre() {
		return txtnombre;
	}

	public Producto getMiProducto() {
		return miProducto;
	}

	public void setMiProducto(Producto miProducto) {
		this.miProducto = miProducto;
	}

	public String getAcatalogo() {
		return acatalogo;
	}

	public void setAcatalogo(String acatalogo) {
		this.acatalogo = acatalogo;
	}

	public boolean isModalRenderedenviar() {
		return modalRenderedenviar;
	}

	public void setModalRenderedenviar(boolean modalRenderedenviar) {
		this.modalRenderedenviar = modalRenderedenviar;
	}

	public void setTxtnombre(HtmlInputText txtnombre) {
		this.txtnombre = txtnombre;
	}

	public HtmlInputText getTxtBuscarpro() {
		return txtBuscarpro;
	}

	public Double getAprecio() {
		return aprecio;
	}

	public HtmlCommandButton getPopup_cmdselecionarBod() {
		return popup_cmdselecionarBod;
	}

	public void setPopup_cmdselecionarBod(
			HtmlCommandButton popup_cmdselecionarBod) {
		this.popup_cmdselecionarBod = popup_cmdselecionarBod;
	}

	public void setAprecio(Double aprecio) {
		this.aprecio = aprecio;
	}

	public String getAprounidad() {
		return aprounidad;
	}

	public void setAprounidad(String aprounidad) {
		this.aprounidad = aprounidad;
	}

	public void setTxtBuscarpro(HtmlInputText txtBuscarpro) {
		this.txtBuscarpro = txtBuscarpro;
	}

	public String getNombreEliminarpro() {
		return nombreEliminarpro;
	}

	public boolean isBusqueda1() {
		return busqueda1;
	}

	public void setBusqueda1(boolean busqueda1) {
		this.busqueda1 = busqueda1;
	}

	public boolean isBusqueda2() {
		return busqueda2;
	}

	public void setBusqueda2(boolean busqueda2) {
		this.busqueda2 = busqueda2;
	}

	public boolean isBusqueda3() {
		return busqueda3;
	}

	public void setBusqueda3(boolean busqueda3) {
		this.busqueda3 = busqueda3;
	}

	public boolean isBusqueda4() {
		return busqueda4;
	}

	public void setBusqueda4(boolean busqueda4) {
		this.busqueda4 = busqueda4;
	}

	public boolean isBusqueda5() {
		return busqueda5;
	}

	public void setBusqueda5(boolean busqueda5) {
		this.busqueda5 = busqueda5;
	}

	public void setNombreEliminarpro(String nombreEliminarpro) {
		this.nombreEliminarpro = nombreEliminarpro;
	}

	public void setTxttipo(HtmlSelectOneMenu txttipo) {
		this.txttipo = txttipo;
	}

	public MngmcnId getMiMngmcnIds() {
		return miMngmcnIds;
	}

	public void setMiMngmcnIds(MngmcnId miMngmcnIds) {
		this.miMngmcnIds = miMngmcnIds;
	}

	public MngmcnId getMiMngmcnIde() {
		return miMngmcnIde;
	}

	public void setMiMngmcnIde(MngmcnId miMngmcnIde) {
		this.miMngmcnIde = miMngmcnIde;
	}

	public Unimed getMiUnimed() {
		return miUnimed;
	}

	public void setMiUnimed(Unimed miUnimed) {
		this.miUnimed = miUnimed;
	}

	public List<Prounimed> getListaUnimed(String producto) {
		logicaUnimed = new UnimedLogica();
		if (listaUnimed == null) {
			try {
				listaUnimed = logicaUnimed.buscarTodosProUnimed(producto);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return listaUnimed;
	}

	public Vinculado getMiVinculado() {
		return miVinculado;
	}

	public void setMiVinculado(Vinculado miVinculado) {
		this.miVinculado = miVinculado;
	}

	public boolean isProselec() {
		return proselec;
	}

	public void setProselec(boolean proselec) {
		this.proselec = proselec;
	}

	public void setListaUnimed(List<Prounimed> listaUnimed) {
		this.listaUnimed = listaUnimed;
	}

	// // Get and Set Fin Propiedades
	// ///////////////////////////////////////////

	// // Actions Busqueda Ini ///////////////////////////////////////////////

	public void action_Validausuario() throws Exception {
		miDlluser = null;
		Traslado_logica = new TrasladoLogica();
		busunombre = null;
		busuario = Usucod;
		Usucod = (String) SessionUtil.get(SessionVars.USER);
		busuario = (String) SessionUtil.get(SessionVars.USER);
		miDlluser = Traslado_logica.consultarRequiUser(Usucod);
		if (miDlluser == null) {
			busunombre = "Usuario No Registrado";
			busuario = null;
			bccosto = null;
		} else {
			busunombre = miDlluser.getUsrnombre();
			bccosto = "CC1 ";
			docautorizados = miDlluser.getUsrtdcaut();
			bodautorizadas = miDlluser.getUsrbodaut();
			sel_document = null;
			getSel_document();
			if (sel_document.length > 0) {
				btipo = sel_document[0].getValue().toString();
			}
		}

	}

	public void action_selecBusqueda(ValueChangeEvent vcex) {

		if (vcex.getNewValue() != null) {

			busquedacmbbus = vcex.getNewValue().toString();

			if (busquedacmbbus.equals("docnumero")) {
				busqueda1 = true;
				busqueda2 = false;
				busqueda3 = false;
				busqueda4 = false;
				busqueda5 = false;
			} else {
				if (busquedacmbbus.equals("docfecha")) {
					busqueda1 = false;
					busqueda2 = false;
					busqueda3 = true;
					busqueda4 = false;
					busqueda5 = false;
					Date today = new Date();
					fechabusca = today;
				} else {
					if (busquedacmbbus.equals("docestado")) {
						busqueda1 = false;
						busqueda2 = true;
						busqueda3 = false;
						busqueda4 = false;
						busqueda5 = false;
					} else {
						if (busquedacmbbus.equals("docbodent")) {
							busqueda1 = false;
							busqueda2 = false;
							busqueda3 = false;
							busqueda4 = true;
							busqueda5 = false;
						} else {
							busqueda1 = false;
							busqueda2 = false;
							busqueda3 = false;
							busqueda4 = false;
							busqueda5 = false;

						}
					}
				}
			}
		}
	}

	public void Activapopupeliminar(ActionEvent ae) {
		modalRendered = !modalRendered;
	}

	public void action_EliminarTabla(ActionEvent ae) {
		Traslado_logica = new TrasladoLogica();

		Activapopupeliminar(ae);
		try {

			String results = null;
			results = Traslado_logica.Cambio_Estado_Doc(Mngdoc_c.getId()
					.getDocempresa(), Mngdoc_c.getId().getDocclase(), Mngdoc_c
					.getId().getDocvinkey(), Mngdoc_c.getId().getDoctipo(),
					Mngdoc_c.getId().getDocnumero(),Mngdoc_c.getDocbodsale(), 5);
			if (results == null || results == "" || results == " ") {
				FacesContext.getCurrentInstance().addMessage("msg",
						new FacesMessage("Verifique ." + results + ""));
			} else {


				FacesContext.getCurrentInstance().addMessage("msg",
						new FacesMessage("Se actualizo Satisfactoriamente"));

				listTrasDoc = null;
				listTrasDoc = Traslado_logica.consultarMngdocProperty(
						DocEdicion.getId().getDocclase(), DocEdicion.getId()
								.getDoctipo(), "docnumero", DocEdicion.getId()
								.getDocnumero().toString(),
						(String) SessionUtil.get(SessionVars.BODAUTORIZADAS));
				listTrasDoc = getlistTrasDoc();

				mngdocw = null;
				DocEdicion = null;
			}
		} catch (Exception e) {
			e.printStackTrace();
			FacesContext.getCurrentInstance().addMessage("msg",
					new FacesMessage(e.getMessage()));
		}
	}

	public void action_confirmacionEliminar(ActionEvent ae) {
		if (docselec == true) {
			if (mngdocw != null) {
				if (DocEdicion.getLabel().getLbcodnum() == 1) {
					Traslado_logica = new TrasladoLogica();
					try {
						setNombreEliminar("Traslado Tipo :"
								+ DocEdicion.getId().getDoctipo() + " Numero :"
								+ DocEdicion.getId().getDocnumero());
					} catch (Exception e) {
						e.printStackTrace();
					}
					Activapopupeliminar(ae);
				} else {
					FacesContext.getCurrentInstance().addMessage(
							"msg",
							new FacesMessage(
									"Debe selecionar un documento activo"));
				}
			} else {
				FacesContext.getCurrentInstance().addMessage("msg",
						new FacesMessage("Debe seleccionar un Documento"));
			}
		} else {
			FacesContext.getCurrentInstance().addMessage("msg",
					new FacesMessage("Debe seleccionar un Documento"));
		}
	}

	public void rowSelectionListener(RowSelectorEvent event) {
		MngdocWork documento = null;
		MngdocWork[] lista = getMngdocw();
		docselec = true;
		for (int i = 0; i < getMngdocw().length; i++) {
			documento = lista[i];
			if (documento.isSelected()) {
				DocEdicion = documento.getMngdocw();
			}
		}
	}

	public void action_Buscar(ActionEvent ae) {

		Probodega_logica = new ProbodegaLogica();
	
		docselec = false;
		try {
			action_Validabodega(null);

			if (bbodegasnom != "" && bbodegasnom != null) {
				listProbodega = null;
				listProbodega = Probodega_logica.findByPropertys(bbodegas,"","");
				listProbodega = getListProbodega();

				FacesContext.getCurrentInstance().addMessage(
						"msg",
						new FacesMessage(MessageBundleLoader
								.getMessage("busqueda.mensaje")
								+ " Bodega :" + bbodegas));
			}else{
				listProbodega = null;
				listProbodega = getListProbodega();
//				FacesContext.getCurrentInstance().addMessage(
//						"msg", 
//						new FacesMessage( "La Bodega no existe o no se encuentra autorizada "));	
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	
	public void action_selecfecha(ValueChangeEvent ae) {
		selecfecha = true;
	}

	// /// Actions Busqueda Fin ///////////////////////////////////////////////

	// // Actions Propiedades Ini ///////////////////////////////////////

	public void toggleModalpro(ActionEvent ae) {
		modalRenderedpro = !modalRenderedpro;
	}

	public void toggleModalenviar(ActionEvent ae) {
		modalRenderedenviar = !modalRenderedenviar;
	}

	// action_confirmacionEnviarRequi

	public void popupAccion_Estado_BodegaPadre(ActionEvent ae) {
		listaBodegapopup = null;
		BusBodModo = "P";
		modalpopupbodega = !modalpopupbodega;
	}

	public void popupAccion_Estado_BodegaHija(ActionEvent ae) throws Exception {
		action_Validabodega(ae);
		if (bbodegasnom == "" || bbodegasnom == null) {
		} else {
			listaBodegapopup = null;
			BusBodModo = "H";
			modalpopupbodega = !modalpopupbodega;
		}
	}

	public void popupAccion_Estado_BodegaCerrar(ActionEvent ae) {
		modalpopupbodega = !modalpopupbodega;
	}

	// popupAccion_Selecionar
	public void popupAccion_Selecionar(ActionEvent ae) throws Exception {
		this.txtaproducto.setValue(popup_cmdselecionar.getValue().toString());
		aproducto = popup_cmdselecionar.getValue().toString();
		action_Validaproducto(ae);
		modalRendered = !modalRendered;
	}

	public void popupAccion_SelecionarBod(ActionEvent ae) throws Exception {
		if (BusBodModo == "P") {
			bbodegas = popup_cmdselecionarBod.getValue().toString();
			action_Validabodega(ae);
		}
		if (BusBodModo == "H") {
			bbodegae = popup_cmdselecionarBod.getValue().toString();
			action_Validabodega_ent(ae);
		}
		modalpopupbodega = !modalpopupbodega;
	}

	public void action_Validabodega(ActionEvent ae) throws Exception {

		miBodegas = null;
		Traslado_logica = new TrasladoLogica();
		miBodegas = Traslado_logica.consultarBodega(bbodegas,
				(String) SessionUtil.get(SessionVars.BODAUTORIZADAS));
		if (miBodegas == null) {
			miBodegas = null;
			bbodegasnom = "";
			// txtbodegasal.requestFocus();
			FacesContext.getCurrentInstance().addMessage(
					"msg",
					new FacesMessage("Bodega " + bbodegas
							+ " no existe o no se encuentra autorizada"));
			bbodegas = "";
			swselec_bodpad = false;
			bbodegae = "";
			bbodegaenom = "";
		} else {

			if (swnuevo == true) {
				swselec_bodpad = true;
			} else {
				swselec_bodpad = false;
			}

			bbodegasnom = miBodegas.getBodnombre();
		}

	}

	public void action_Validabodega_ent(ActionEvent ae) throws Exception {
		action_Validabodega(ae);
		miBodegae = null;
		Traslado_logica = new TrasladoLogica();
		miBodegae = Traslado_logica.consultarBodegahija(bbodegas, bbodegae);
		if (miBodegae == null || bbodegasnom == "" || bbodegasnom == null) {
			miBodegae = null;
			bbodegaenom = "";
			FacesContext.getCurrentInstance().addMessage(
					"msg",
					new FacesMessage("Bodega " + bbodegae
							+ " no existe o no se encuentra autorizada"));
			bbodegae = "";
		} else {
			bbodegaenom = miBodegae.getBodnombre();
		}

	}

	public void action_BuscarBod(ActionEvent ae) {
		listaBodegapopup = null;
		Traslado_logica = new TrasladoLogica();

		try {

			if (BusBodModo == "P") {
				if (busquedacmbbodega.equals("bodnombre")) {
					FacesContext.getCurrentInstance().addMessage(
							"msgbod",
							new FacesMessage(MessageBundleLoader
									.getMessage("busqueda.mensaje")
									+ " nombre :" + buscarbod));
					listaBodegapopup = Traslado_logica.consultarBodegaLike(
							"bodnombre", buscarbod.toUpperCase(),
							(String) SessionUtil
									.get(SessionVars.BODAUTORIZADAS));

				} else {
					if (busquedacmbbodega.equals("bodcodigo")) {
						FacesContext.getCurrentInstance().addMessage(
								"msgbod",
								new FacesMessage(MessageBundleLoader
										.getMessage("busqueda.mensaje")
										+ " Codigo :" + buscarbod));
						listaBodegapopup = Traslado_logica.consultarBodegaLike(
								"bodnombre", buscarbod.toUpperCase(),
								(String) SessionUtil
										.get(SessionVars.BODAUTORIZADAS));
					} else {

						if (busquedacmbbodega.equals("todos")) {
							FacesContext.getCurrentInstance().addMessage(
									"msgbod",
									new FacesMessage(MessageBundleLoader
											.getMessage("busqueda.mensaje")
											+ " Codigo :" + buscarbod));

							listaBodegapopup = Traslado_logica
									.buscarBodegas_Aut((String) SessionUtil
											.get(SessionVars.BODAUTORIZADAS));
						}

					}
				}
			}

			if (BusBodModo == "H") {
				if (busquedacmbbodega.equals("bodnombre")) {
					FacesContext.getCurrentInstance().addMessage(
							"msgbod",
							new FacesMessage(MessageBundleLoader
									.getMessage("busqueda.mensaje")
									+ " nombre :" + buscarbod));
					listaBodegapopup = Traslado_logica.findByBodega_hijaList(
							bbodegas, "bodnombre", buscarbod.toUpperCase());

				} else {
					if (busquedacmbbodega.equals("bodcodigo")) {
						FacesContext.getCurrentInstance().addMessage(
								"msgbod",
								new FacesMessage(MessageBundleLoader
										.getMessage("busqueda.mensaje")
										+ " Codigo :" + buscarbod));
						listaBodegapopup = Traslado_logica
								.findByBodega_hijaList(bbodegas, "bodcodigo",
										buscarbod.toUpperCase());
					} else {

						if (busquedacmbbodega.equals("todos")) {
							FacesContext.getCurrentInstance().addMessage(
									"msgbod",
									new FacesMessage(MessageBundleLoader
											.getMessage("busqueda.mensaje")
											+ " Codigo :" + buscarbod));

							listaBodegapopup = Traslado_logica
									.findByBodega_hijaListAll(bbodegas);
						}

					}
				}
			}

		} catch (Exception e) {

			e.printStackTrace();

		}

	}

	// action_BuscarPro
	public void action_BuscarPro(ActionEvent ae) {

		listProductos = null;
		Traslado_logica = new TrasladoLogica();

		try {
			if (busquedacmb.equals("procodigo")) {
				FacesContext.getCurrentInstance().addMessage("msg",
						new FacesMessage("Buscando Codigo :" + buscarpro));

				listProductos = Traslado_logica.consultarProductosLike(
						"procodigo", buscarpro.toUpperCase());

			} else {
				if (busquedacmb.equals("pronombre")) {
					FacesContext.getCurrentInstance().addMessage("msg",
							new FacesMessage("Buscando Nombre :" + buscarpro));

					listProductos = Traslado_logica.consultarProductosLike(
							"pronombre", buscarpro.toUpperCase());
				} else {
					FacesContext.getCurrentInstance().addMessage("msg",
							new FacesMessage("Buscando Todos."));

					listProductos = Traslado_logica.buscarTodosProductos();

				}
			}

		} catch (Exception e) {

			e.printStackTrace();

		}

	}

	// action_confirmacionEliminarPro
	public void action_confirmacionEliminarMngmcn(ActionEvent ae) {

		if (proselec == true) {
			if (mngmcnw != null) {
				int fin = DetalleEdicion.getId().getMcnnumedoc().toString()
						.indexOf(".");
				String doc = DetalleEdicion.getId().getMcnnumedoc().toString()
						.substring(0, fin);

				if (doc.equals(bnumero)) {

					Traslado_logica = new TrasladoLogica();
					try {
						setNombreEliminarpro("Producto : "
								+ DetalleEdicion.getProducto().getProcodigo()
								+ "         " + " Nombre : "
								+ DetalleEdicion.getProducto().getPronombre()
								+ "Cantidad : " + DetalleEdicion.getMcncantid());
					} catch (Exception e) {
						e.printStackTrace();
					}
					toggleModalpro(ae);
				} else {
					FacesContext.getCurrentInstance().addMessage("msg",
							new FacesMessage("Debe seleccionar un Producto"));
				}
			}
		} else {
			FacesContext.getCurrentInstance().addMessage("msg",
					new FacesMessage("Debe seleccionar un Producto"));
		}

	}

	// rowSelectionListenerPro
	public void rowSelectionListenerDetalle(RowSelectorEvent event) {
		MngmcnWork mngmcnw = null;
		MngmcnWork[] lista = getMngmcnw();
		proselec = true;
		for (int i = 0; i < getMngmcnw().length; i++) {
			mngmcnw = lista[i];
			if (mngmcnw.isSelected()) {
				DetalleEdicion = mngmcnw.getMngmcnw();
				String Undme = DetalleEdicion.getUnimedByMcnunimed()
						.getUmdcodigo();
				String Undmed = DetalleEdicion.getId().getMcnempresa();
			}
		}
	}

	// action_GuardarRequi_Pro
	public String action_Guardar_Mngmcn() throws Exception {
		action_Validabodega(null);

		Traslado_logica = new TrasladoLogica();
		if (bbodegasnom == "" || bbodegasnom == null || bbodegaenom == ""
				|| bbodegaenom == null) {
			FacesContext.getCurrentInstance().addMessage("msg",
					new FacesMessage("Debe Agregar una bodega existente"));
			retornar = "Cancelado";
		} else {

			if (apronombre == "" || apronombre == null || aprocantidad == null
					|| aprocantidad == 0) {
				FacesContext
						.getCurrentInstance()
						.addMessage(
								"msg",
								new FacesMessage(
										"Debe Validar El Producto y Agregar la cantidad requerida"));
				retornar = "Cancelado";
			} else {

				if (swnuevo == true) {

					Mngdoc_c.getId().setDocempresa(bempresa);
					Mngdoc_c.getId().setDocclase(bclase);
					Mngdoc_c.getId().setDoctipo(btipo);
					miVinculado = new Vinculado();
					miVinculado.setVincedula(".");
					Mngdoc_c.getId().setDocvinkey(".");
					Mngdoc_c.setVinculado(miVinculado);

					consecutiv = Traslado_logica.MngDocnum_Id(bclase, btipo);
					int fin = consecutiv.toString().indexOf(".");
					String numero = consecutiv.toString().substring(0, fin);
					bnumero = numero;

					Mngdoc_c.getId().setDocnumero(Double.valueOf(bnumero));
					Mngdoc_c.setDocfecha(bfecha);
					Mngdoc_c.setDocccosto("CC1 ");
					Mngdoc_c.getBodega().setBodcodigo(bbodegae);
					Mngdoc_c.setDocbodsale(bbodegas);
					bdetalle = bdetalle.toUpperCase();
					Mngdoc_c.setDocdetalle(bdetalle);
					Mngdoc_c.getDlluser().setUsrcodigo(busuario);
					setMilabel(Traslado_logica.consultarlabel(new Long(
							selecestado)));
					Mngdoc_c.setLabel(milabel);
					bclase = Mngdoc_c.getId().getDocclase();
					bempresa = Mngdoc_c.getId().getDocempresa();
					retornar = "Terminado";
					mngdocw = null;
					try {

						bnumero = Traslado_logica.grabar_Mngdoc_new(Mngdoc_c);
						swnuevo = false;
						sweditando = true;
						swselec_bodpad = false;
					} catch (Exception e) {
						e.printStackTrace();
						FacesContext.getCurrentInstance().addMessage("msg",
								new FacesMessage(e.getMessage()));
					}

				}

				breg = Traslado_logica.buscardetalleId(bempresa, bclase, btipo,
						Double.valueOf(bnumero));

				if (breg == null) {
					breg = 1.0;
				} else {
					breg = breg + 1.0;
				}

				miMngmcns = null;
				miMngmcne = null;
				miMngmcns = new Mngmcn();
				miMngmcne = new Mngmcn();
				miMngmcnIds = null;
				miMngmcnIde = null;
				miMngmcnIds = new MngmcnId();
				miMngmcnIde = new MngmcnId();
				miUnimed = null;
				miUnimed = new Unimed();
				miCataventa = null;
				miCataventa = new Cataventa();
				miMngmcnIds.setMcnempresa(bempresa);
				miMngmcnIds.setMcnclase(bclase);
				miMngmcnIds.setMcntipodoc(btipo);
				miMngmcnIde.setMcnempresa(bempresa);
				miMngmcnIde.setMcnclase(bclase);
				miMngmcnIde.setMcntipodoc(btipo);
				miVinculado = new Vinculado();
				miVinculado.setVincedula(".");
				miMngmcnIds.setMcnvinkey(".");
				miMngmcnIds.setMcnnumedoc(Double.valueOf(bnumero));
				miMngmcnIds.setMcnreg(breg);
				miMngmcnIde.setMcnvinkey(".");
				miMngmcnIde.setMcnnumedoc(Double.valueOf(bnumero));
				miMngmcnIde.setMcnreg(breg + 1);
				miUnimed.setUmdcodigo(selectedunimed);
				miCataventa.setCatcodigo("CAT01");
				miMngmcns.setId(miMngmcnIds);
				miMngmcns.setProducto(miProducto);
				miMngmcns.setMcncantid(aprocantidad);
				miMngmcns.setMcncantiO(aprocantidad);
				miMngmcns.setUnimedByMcnunimed(miUnimed);
				miMngmcns.setUnimedByMcnuniO(miUnimed);
				miMngmcns.setCataventa(miCataventa);
				miMngmcns.setTipoiva(miProducto.getTipoiva());
				miMngmcne.setId(miMngmcnIde);
				miMngmcne.setProducto(miProducto);
				miMngmcne.setMcncantid(aprocantidad);
				miMngmcne.setMcncantiO(aprocantidad);
				miMngmcne.setUnimedByMcnunimed(miUnimed);
				miMngmcne.setUnimedByMcnuniO(miUnimed);
				miMngmcne.setCataventa(miCataventa);
				miMngmcne.setTipoiva(miProducto.getTipoiva());

				miBodegae = new Bodega();
				miBodegae.setBodcodigo(bbodegae);
				miBodegas = new Bodega();
				miBodegas.setBodcodigo(bbodegas);
				miMngmcns.setBodega(miBodegas);
				miMngmcns.setMcnindinv("S");
				miMngmcns.setMcncuenta(".");
				miMngmcne.setBodega(miBodegae);
				miMngmcne.setMcnindinv("E");
				miMngmcne.setMcncuenta(".");
				retornar = "Terminado";
				try {
					// Enrada y Salida de Traslado
					String out_pro = Traslado_logica.grabar_Mngmcn(miMngmcne,
							miMngmcns);
					if (out_pro == null) {
						FacesContext
								.getCurrentInstance()
								.addMessage(
										"msg",
										new FacesMessage(
												"Se actualizo Registro Satisfactoriamente"));
					} else {
						FacesContext.getCurrentInstance().addMessage("msg",
								new FacesMessage(out_pro));
					}
					aproducto = null;
					apronombre = null;
					aexistencia = Double.valueOf("0");
					aprounidad = null;
					aprecio = null;
					acatalogo = null;
					aprocantidad = null;
					breg = null;
					// sel_unimed = null;
					// sel_unimed = getSel_unimed();
					// getSel_unimed();
					txtaproducto.requestFocus();
					listTrasDoc = null;
					listTrasDoc = Traslado_logica.consultarMngdocProperty(
							bclase, btipo, "docnumero", bnumero,
							(String) SessionUtil
									.get(SessionVars.BODAUTORIZADAS));
					listTrasDoc = getlistTrasDoc();

					listDetalle = null;
					listDetalle = getlistDetalle();
					mngmcnw = null;

				} catch (Exception e) {
					e.printStackTrace();
					FacesContext.getCurrentInstance().addMessage("msg",
							new FacesMessage(e.getMessage()));
				}
			}
		}
		return retornar;
	}

	// action_validadoc
	public void action_validadoc(ValueChangeEvent vce) {

		Traslado_logica = new TrasladoLogica();

		if (swnuevo == true) {
			try {
				String a = null;

				if (vce == null || vce.getNewValue() == null) {
					a = btipo.toString();
				} else {
					a = vce.getNewValue().toString();
				}

				int fin = Traslado_logica.MngDocnum_Id(bclase, (String) a)
						.toString().indexOf(".");
				String numero = Traslado_logica
						.MngDocnum_Id(bclase, (String) a).toString().substring(
								0, fin);
				this.txtnumero.setValue(numero);

			} catch (Exception e) {
				e.printStackTrace();
			}

		}

	}

	// action_Validaproducto
	public void action_Validaproducto(ActionEvent ae) throws Exception {

		miProducto = null;
		Traslado_logica = new TrasladoLogica();
		apronombre = null;
		aprounidad = null;
		aprecio = null;
		acatalogo = null;
		breg = null;

		breg = Traslado_logica.buscardetalleId(bempresa, bclase, btipo, Double
				.valueOf(bnumero));

		if (breg == null) {
			breg = 1.0;
		} else {
			breg = breg + 1.0;
		}

		miProducto = Traslado_logica.consultarDetalle(aproducto);
		if (miProducto == null) {
			apronombre = "Producto no valido.";
			aprounidad = null;
			aprecio = null;
			acatalogo = null;
			aprocantidad = null;
			breg = null;
			listaUnimed = null;
			sel_unimed = null;
			txtaproducto.requestFocus();
			aexistencia = Double.valueOf("0");
		} else {
			apronombre = miProducto.getPronombre();
			listaUnimed = null;
			listaUnimed = getListaUnimed(this.aproducto);
			sel_unimed = null;
			sel_unimed = getSel_unimed();
			getSel_unimed();
			aprecio = null;
			aprocantidad = null;
			acatalogo = null;
			aexistencia = Traslado_logica.consultar_existencia(aproducto,
					bbodegas);

			txtaprocantidad.requestFocus();
		}

	}

	// action_Guardar
	public String action_Guardar_MngDoc() throws Exception {
		action_Validabodega(null);
		Traslado_logica = new TrasladoLogica();

		if (bbodegasnom == "" || bbodegasnom == null || bbodegaenom == ""
				|| bbodegaenom == null) {
			FacesContext.getCurrentInstance().addMessage("msg",
					new FacesMessage("Debe Agregar una bodega existente"));
			retornar = "Cancelado";
		} else {

			if (swnuevo == true) {

				Mngdoc_c.getId().setDocempresa(bempresa);
				Mngdoc_c.getId().setDocclase(bclase);
				Mngdoc_c.getId().setDoctipo(btipo);
				miVinculado = new Vinculado();
				miVinculado.setVincedula(".");
				Mngdoc_c.getId().setDocvinkey(".");

				consecutiv = Traslado_logica.MngDocnum_Id(bclase, btipo);
				int fin = consecutiv.toString().indexOf(".");
				String numero = consecutiv.toString().substring(0, fin);
				bnumero = numero;

				Mngdoc_c.getId().setDocnumero(Double.valueOf(bnumero));
				Mngdoc_c.setVinculado(miVinculado);

			}

			Mngdoc_c.setDocfecha(bfecha);
			Mngdoc_c.setDocccosto("CC1 ");
			Mngdoc_c.getBodega().setBodcodigo(bbodegae);
			Mngdoc_c.setDocbodsale(bbodegas);
			bdetalle = bdetalle.toUpperCase();
			Mngdoc_c.setDocdetalle(bdetalle);
			Mngdoc_c.getDlluser().setUsrcodigo(busuario);
			// Requisicion.getLabel().setLbcodnum(new Long(selecestado));

			retornar = "Procesando";

			try {

				setMilabel(Traslado_logica
						.consultarlabel(new Long(selecestado)));
				Mngdoc_c.setLabel(milabel);

				if (swnuevo == true) {
					bnumero = Traslado_logica.grabar_Mngdoc_new(Mngdoc_c);
					Mngdoc_c.getId().setDocnumero(Double.valueOf(bnumero));
				} else {
					Traslado_logica.grabar_Mngdoc(Mngdoc_c);
				}

				FacesContext.getCurrentInstance().addMessage("msg",
						new FacesMessage("Se actualizo Satisfactoriamente"));

				swnuevo = false;
				sweditando = true;
				swselec_bodpad = false;

				retornar = "Traslado_B";

				listTrasDoc = null;
				listTrasDoc = Traslado_logica.consultarMngdocProperty(bclase,
						btipo, "docnumero", bnumero, (String) SessionUtil
								.get(SessionVars.BODAUTORIZADAS));
				listTrasDoc = getlistTrasDoc();
				mngdocw = null;

				swnuevo = false;
				sweditando = false;

			} catch (Exception e) {
				e.printStackTrace();
				FacesContext.getCurrentInstance().addMessage("msg",
						new FacesMessage(e.getMessage()));
			}
		}
		return retornar;
	}

	// action_Cancelar
	public String action_Cancelar() {

		Traslado_logica = new TrasladoLogica();
		listTrasDoc = null;
		try {
			if (swnuevo == false) {
				listTrasDoc = Traslado_logica.consultarMngdocProperty(bclase,
						btipo, "docnumero", bnumero, (String) SessionUtil
								.get(SessionVars.BODAUTORIZADAS));
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		listTrasDoc = getlistTrasDoc();

		return "Traslado_B";
	}

	public String buscaproducto() {
		Traslado_logica = new TrasladoLogica();
		Traslado_logica.procedimiento(buscar, "BOD1 ", 1, "E", 1);
		return "Tra";
	}

	public void action_EditarMngmcn(ActionEvent ae) {
		if (proselec == true) {
			Traslado_logica = new TrasladoLogica();

			try {

				this.txtaproducto.setValue(DetalleEdicion.getProducto()
						.getProcodigo().toString());
				aproducto = DetalleEdicion.getProducto().getProcodigo()
						.toString();
				aprocantidad = DetalleEdicion.getMcncantid().doubleValue();
				selectedunimed = DetalleEdicion.getUnimedByMcnunimed()
						.getUmdcodigo().toString();

				Traslado_logica.eliminar_Mngmcn(DetalleEdicion.getId());
				action_Validaproducto(ae);
				listDetalle = null;
				listDetalle = getlistDetalle();
				mngmcnw = null;
				proselec = true;
			} catch (Exception e) {
				e.printStackTrace();
				FacesContext.getCurrentInstance().addMessage("msg",
						new FacesMessage("No se puede Actualizar Registro."));
			}
		}
	}
	public void action_Imprimir(ActionEvent ae){
		String reporte = "Inventario_Bodega";
		JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), "window.open(\"./conexionReportes?Reporte="+reporte+"&bodega="+bbodegas+"&bodeganombre="+bbodegasnom+"&toExcel=false\",\"conexionReportes\");");
	}
	// // Actions Propiedades Fin
	// ///////////////////////////////////////////////

}
